package com.hanhai;

import java.time.Month;
import java.time.chrono.IsoChronology;
import java.util.Calendar;
import java.util.Date;

/**
 * 日历对象的创建
 * @author weijingchen
 * @DateTime 2025-05-19 17:42
 */
public class CalenderDemo {
    public static void main(String[] args) {

        //创建日历对象
        //根据系统的不同时区获取日历象
        Calendar instance = Calendar.getInstance();
        //获取Calendar日历中的字段 transitions


        System.out.println(instance);
        System.out.println("-------------------------------------------------");
        //修改日历代表时间
        //date
        //在老外眼里星期日代表一周的第一天
      /*  Date date = new Date(0L);
        instance.setTime(date);
        System.out.println(instance);*/
        
        System.out.println("-------------------------------------------------");
        //获取日历中的字段 建议使用常量
        //0：代表纪元
        // 1：代表年
        // 2：代表月
        // 3：代表一年中的第几周
        // 4：代表一月中的第几周
        // 5：代表一月中的第几天。
        int year = instance.get(Calendar.YEAR);
        System.out.println("年"+year);
        int year1 = instance.get(1);
        System.out.println("年"+year1);

        int month = instance.get(Calendar.MONTH);
        System.out.println("月"+month);
        int month1 = instance.get(2);
        System.out.println("月"+month1);


        int week = instance.get(Calendar.WEEK_OF_YEAR);
        System.out.println("一年中的第几周"+week);
        int week1 = instance.get(3);
        System.out.println("一年中的第几周"+week1);

        int week3 = instance.get(Calendar.WEEK_OF_MONTH);
        System.out.println("一月中的第几周"+week3);
        int week2 = instance.get(4);
        System.out.println("一月中的第几周"+week2);

        int day = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println("一月中的第几天"+day);
        int day1 = instance.get(5);
        System.out.println("一月中的第几天"+day1);

        int hour = instance.get(Calendar.HOUR);
        System.out.println("小时"+hour);
        int hour1 = instance.get(Calendar.HOUR_OF_DAY);
        System.out.println("小时"+hour1);
        int minute = instance.get(Calendar.MINUTE);
        System.out.println("分钟"+minute);
        int second = instance.get(Calendar.SECOND);
        System.out.println("秒"+second);
        int millisecond = instance.get(Calendar.MILLISECOND);
        System.out.println("毫秒"+millisecond);

        //一周中的第几天，1 代表星期日，2 代表星期一，3 代表星期二，4 代表星期三，5 代表星期四，6 代表星期五，7 代表星期六
        int dayOfWeek = instance.get(Calendar.DAY_OF_WEEK);
        System.out.println("一周中的第几天"+dayOfWeek);

        System.out.println("----------------------set方法---------------------------");
        //设置日历中的年字段
        instance.set(Calendar.YEAR,2000);
        System.out.println(instance);
        //设置月字段，1-12，超过12，会自动进位
        instance.set(Calendar.MONTH,3);
        System.out.println(instance);
        //设置日字段
        instance.set(Calendar.DAY_OF_MONTH,1);
        System.out.println(instance);

        System.out.println("---------------------add方法------------------------------------");
    //    增加时间，减少填写负数
        instance.add(Calendar.YEAR,1);
        System.out.println(instance);

        instance.add(Calendar.MONTH,1);

        System.out.println(instance);

        instance.add(Calendar.DAY_OF_MONTH,1);
        System.out.println(instance);


    }
}
